package com.cvpoc.service.impl;

import java.util.List;

import com.cvpoc.dto.CertificationDTO;
import com.cvpoc.dto.CollaborateurCertificationDTO;
import com.cvpoc.exception.BusinessException;
import com.cvpoc.hibernate.dao.CertificationDao;
import com.cvpoc.service.CertificationService;

public class CertificationServiceImpl implements CertificationService {

	private CertificationDao certificationDao;
	
	public void setCertificationDao(CertificationDao certificationDao) {
		this.certificationDao = certificationDao;
	}

	@Override
	public List<CollaborateurCertificationDTO> rechercherListCertificationsByIdCollaborateur(
			int idCollaborateur) throws BusinessException {
		List<CollaborateurCertificationDTO> collaborateurCertificationDTOs =  certificationDao.findListCertificationsByIdCollaborateur(idCollaborateur);
		if(collaborateurCertificationDTOs.isEmpty()){
			throw new BusinessException("Ce collaborateur n'a pas de certification associée");
		}
		return collaborateurCertificationDTOs;
	}

	@Override
	public List<CertificationDTO> rechercherCertificationByEditeur(int idEditeur)
			throws BusinessException {
		List<CertificationDTO> certificationDTOs =  certificationDao.findListCertificationByEditeur(idEditeur);
		if(certificationDTOs.isEmpty()){
			throw new BusinessException("Cet éditeur n'a pas de certification associée");
		}
		return certificationDTOs;
	}

	@Override
	public void ajouterCollaborateurCertification(
			CollaborateurCertificationDTO collaborateurCertificationDTO)
			throws BusinessException {
		certificationDao.createCollaborateurCertification(collaborateurCertificationDTO);
	}

	@Override
	public int creerCertification(CertificationDTO certificationDTO)
			throws BusinessException {
		return certificationDao.createCertification(certificationDTO);
	}

	@Override
	public void supprimerCollaborateurCertification(
			CollaborateurCertificationDTO collaborateurCertificationDTO)
			throws BusinessException {
		certificationDao.deleteCollaborateurCertification(collaborateurCertificationDTO);
	}

}
